home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CU Amiga Super CD-ROM 11
/
CU Amiga Magazine's Super CD-ROM 11 (1997)(EMAP Images)(GB)(Track 1 of 3)[!][issue 1997-06].iso
/
cucd
/
programming
/
oberonv4
/
source
/
system
/
amigaasl.mod
(
.txt
)
< prev
next >
Wrap
Oberon Text
|
1996-06-02
|
4KB
|
113 lines
Syntax10.Scn.Fnt
Syntax10i.Scn.Fnt
Syntax10b.Scn.Fnt
MODULE AmigaAsl; (* updated OJ 30 Apr 96 *)
IMPORT
SYSTEM, E:=AmigaExec, U:=AmigaUtility;
aslBase- : E.LibraryPtr;
aslVersion- : INTEGER;
termEntry : E.TermEntry;
dummy : LONGINT;
CONST
aslName*="asl.library";
aslScreenModeRequest*=2;
aslTB*=U.user+80000H;
tsmWindow*=aslTB+2;
tsmScreen*=aslTB+40;
tsmPubScreenName*=aslTB+41;
tsmPrivateIDCMP*=aslTB+42;
tsmIntuiMsgFunc*=aslTB+70;
tsmSleepWindow*=aslTB+43;
tsmUserData*=aslTB+52;
tsmTextAttr*=aslTB+51;
tsmLocale*=aslTB+50;
tsmTitleText*=aslTB+1;
tsmPositiveText*=aslTB+18;
tsmNegativeText*=aslTB+19;
tsmInitialLeftEdge*=aslTB+3;
tsmInitialTopEdge*=aslTB+4;
tsmInitialWidth*=aslTB+5;
tsmInitialHeight*=aslTB+6;
tsmInitialDisplayID*=aslTB+100;
tsmInitialDisplayWidth*=aslTB+101;
tsmInitialDisplayHeight*=aslTB+102;
tsmInitialDisplayDepth*=aslTB+103;
tsmInitialOverscanType*=aslTB+104;
tsmInitialAutoScroll*=aslTB+105;
tsmInitialInfoOpened*=aslTB+106;
tsmInitialInfoLeftEdge*=aslTB+107;
tsmInitialInfoTopEdge*=aslTB+108;
tsmDoWidth*=aslTB+109;
tsmDoHeight*=aslTB+110;
tsmDoDepth*=aslTB+111;
tsmDoOverscanType*=aslTB+112;
tsmDoAutoScroll*=aslTB+113;
tsmPropertyFlags*=aslTB+114;
tsmPropertyMask*=aslTB+115;
tsmMinWidth*=aslTB+116;
tsmMaxWidth*=aslTB+117;
tsmMinHeight*=aslTB+118;
tsmMaxHeight*=aslTB+119;
tsmMinDepth*=aslTB+120;
tsmMaxDepth*=aslTB+121;
tsmFilterFunc*=aslTB+122;
tsmCustomSMList*=aslTB+123;
ScreenModeRequester*=RECORD
displayID*:LONGINT;
displayWidth*:LONGINT;
displayHeight*:LONGINT;
displayDepth*:INTEGER;
overscanType*:INTEGER;
autoScroll*:INTEGER; (* BOOL *)
bitMapWidth*:LONGINT;
bitMapHeight*:LONGINT;
leftEdge*:INTEGER;
topEdge*:INTEGER;
width*:INTEGER;
height*:INTEGER;
infoOpened*:INTEGER; (* BOOL *)
infoLeftEdge*:INTEGER;
infoTopEdge*:INTEGER;
infoWidth*:INTEGER;
infoHeight*:INTEGER;
userData*:LONGINT
END;
PROCEDURE -ReturnD0 04EH,05EH, 04EH,075H;
PROCEDURE AllocAslRequest*(type:LONGINT; tags:ARRAY OF U.TagItem):LONGINT;
BEGIN
SYSTEM.PUTREG( 8, SYSTEM.ADR(tags) );
SYSTEM.PUTREG( 0, type );
SYSTEM.CALL( -48, aslBase );
ReturnD0
END AllocAslRequest;
PROCEDURE AslRequest*(request:LONGINT; tags:ARRAY OF U.TagItem):BOOLEAN;
BEGIN
SYSTEM.PUTREG( 9, SYSTEM.ADR(tags) );
SYSTEM.PUTREG( 8, request );
SYSTEM.CALL( -60, aslBase );
SYSTEM.GETREG( 0, dummy );
RETURN dummy#E.false
END AslRequest;
PROCEDURE FreeAslRequest*(request:LONGINT);
BEGIN
SYSTEM.PUTREG( 8, request );
SYSTEM.CALL( -54, aslBase )
END FreeAslRequest;
PROCEDURE Init;
TYPE LibraryPtr=POINTER TO E.Library;
VAR lib:LibraryPtr;
BEGIN
aslBase:=E.OpenLibrary(aslName,37);
IF aslBase=0 THEN HALT(99) END;
lib:=SYSTEM.VAL(LibraryPtr,aslBase);
aslVersion:=lib.version
END Init;
PROCEDURE Term;
BEGIN
E.CloseLibrary( aslBase )
END Term;
BEGIN
Init;
E.Register(termEntry, Term);
END AmigaAsl.